/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package imp.gestores;

import imp.DAO.*;
import imp.util.*;
import imp.clases.*;

import java.util.ArrayList;

import java.util.List;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
import org.ajax4jsf.component.html.HtmlAjaxCommandButton;

import org.richfaces.component.html.HtmlDataTable;

/**
 *
 * @author Alvaro Uyaguari
 */
public class GestorPlanEconomico extends BeanUtil{

    private Emprendimiento currentEmprendimiento;
    private Competidor currentCompetidor;
    private ProductoServicio currentProductoServicio;
    private Funcionalidad currentFuncionalidad;
    private Caracteristica currentCaracteristica;
    private ProblemaNecesidad currentProblemaNecesidad;

 

    private HtmlDataTable tablaCompetidor;
    private HtmlDataTable tablaProductoServicio;
    private HtmlDataTable tablaFuncionalidades;
    private HtmlDataTable tablaCaracteristicas;
    private HtmlDataTable tablaProblemasNecesidades;

        //private ListDataModel listado;
    private List<Competidor> listadoActual;
    private String filtroBusqueda;
    private String accion;
    private Boolean renderCompetidor;
    private Boolean renderProductoServicio;
    private Boolean renderFuncionalidad;
    private Boolean renderCaracteristica;
    private Boolean renderProblemaNecesidad;


    private String accionCompetidor;
    private String accionProducto;
    private String accionFuncionalidad;
    private String accionCaracteristica;
    private String accionProblemaNecesidad;





    private DAO dao = (DAO)ServiceFinder.findBean("SpringHibernateDao");

    public GestorPlanEconomico(){
        this.listar();
        this.accion="Ins";
    }
     public void buscar(){

    }

      public String listar() {

        try {
                listadoActual = dao.find(Competidor.class);

        } catch (Exception e) {
            super.addErrorMessage(e.getMessage());
        }
        return null;
    }
    public String eliminar(){
                this.currentCompetidor = (Competidor) tablaCompetidor.getRowData();

		try
		{
			//session.delete(currentOrden);
			//tx.commit();
                    dao.delete(currentCompetidor);
		}
		catch (Throwable ex)
		{
			super.addErrorMessage(ex.getMessage());
			return null;
		}
		listar();

		return null;
	}
    public String editar()
	{
                this.accion="Mod";
		currentCompetidor = (Competidor)tablaCompetidor.getRowData();
		return null;
	}
     public String nuevo() {
        try
        {
                    this.accion="Ins";
                   this.currentCompetidor = new Competidor();

                   return null;

        }
        catch  (Throwable ex) {
                    super.addErrorMessage(ex.getMessage());
        }
                return null;
    }
      public String cerrar() {

                return null;
            }

       public String grabar() {

        try {

               
                dao.persist(this.currentEmprendimiento);
                super.addSuccessMessage("Grabado exitosamente");


        } catch (Exception e) {
            super.addErrorMessage(e.getMessage());
        }
        this.listar();
        return null;
    }
       public String grabarCompetidor(){
            if (this.accionCompetidor.equals("Ins")){

                this.currentEmprendimiento.addCompetidor(currentCompetidor);

          }
            this.renderCompetidor=false;
           return null;
       
       }
       public String cerrarCompetidor(){
           this.renderCompetidor=false;
           return null;

       }
       public String eliminarCompetidor(){
           currentCompetidor = (Competidor)tablaCompetidor.getRowData();
                this.currentEmprendimiento.removeCompetidor(currentCompetidor);
		return null;
       }
       public String editarCompetidor(){
            this.accionCompetidor="Mod";
                this.renderCompetidor=true;
		currentCompetidor = (Competidor)tablaCompetidor.getRowData();
		return null;
       }
       public String nuevoCompetidor(){
                this.accionCompetidor="Ins";
                this.renderCompetidor=true;
		currentCompetidor = new Competidor();
		return null;
       }


       //FUNCIONALIDAD

       public String grabarFuncionalidad(){
            if (this.accionFuncionalidad.equals("Ins")){

                this.currentProductoServicio.addFuncionalidad(currentFuncionalidad);

          }
            this.renderFuncionalidad=false;
           return null;

       }
       
        public String eliminarFuncionalidad(){
           currentFuncionalidad = (Funcionalidad)tablaFuncionalidades.getRowData();
                this.currentProductoServicio.removeFuncionalidad(currentFuncionalidad);
		return null;
       }

         public void editarFuncionalidad(ActionEvent evento){
            this.accionFuncionalidad="Mod";
		currentFuncionalidad = (Funcionalidad)tablaFuncionalidades.getRowData();
		HtmlAjaxCommandButton boton = (HtmlAjaxCommandButton) evento.getComponent();
                boton.setOncomplete("Richfaces.showModalPanel('panelFuncionalidad', {top:'650px', left:'300px', height:'40px'})");
       }
         
       public void nuevaFuncionalidad(ActionEvent evento){
            this.accionFuncionalidad="Ins";
		currentFuncionalidad = new Funcionalidad();
                HtmlAjaxCommandButton boton = (HtmlAjaxCommandButton) evento.getComponent();
                boton.setOncomplete("Richfaces.showModalPanel('panelFuncionalidad', {top:'650px', left:'300px', height:'40px'})");
       }

       //CARACTERISTICAS

       public String grabarCaracteristica(){
            if (this.accionCaracteristica.equals("Ins")){

                this.currentProductoServicio.addCaracteristica(currentCaracteristica);

          }
            this.renderCaracteristica=false;
           return null;

       }
       
        public String eliminarCaracteristica(){
           currentCaracteristica = (Caracteristica)tablaCaracteristicas.getRowData();
                this.currentProductoServicio.removeCaracteristica(currentCaracteristica);
		return null;
       }

         public void editarCaracteristica(ActionEvent evento){
            this.accionCaracteristica="Mod";
                this.renderCaracteristica=true;
		currentCaracteristica = (Caracteristica)tablaCaracteristicas.getRowData();
                HtmlAjaxCommandButton boton = (HtmlAjaxCommandButton) evento.getComponent();
                boton.setOncomplete("Richfaces.showModalPanel('panelCaracterisitcas', {top:'700px', left:'300px', height:'40px'})");
		
       }
       
       public void nuevaCaracteristica(ActionEvent evento){
            this.accionCaracteristica="Ins";
		currentCaracteristica = new Caracteristica();
                HtmlAjaxCommandButton boton = (HtmlAjaxCommandButton) evento.getComponent();
                boton.setOncomplete("Richfaces.showModalPanel('panelCaracterisitcas', {top:'700px', left:'300px', height:'40px'})");
		
       }


  //PROBLEMA NECESIDAD

       public String grabarProblemaNecesidad(){
            if (this.accionProblemaNecesidad.equals("Ins")){

                this.currentProductoServicio.addProblemaNecesidad(currentProblemaNecesidad);

          }
            this.renderProblemaNecesidad=false;
           return null;

       }
      
        public String eliminarProblemaNecesidad(){
           currentProblemaNecesidad = (ProblemaNecesidad)tablaProblemasNecesidades.getRowData();
                this.currentProductoServicio.removeProblemaNecesidad(currentProblemaNecesidad);
		return null;
       }

         public void editarProblemaNecesidad(ActionEvent evento){
                this.accionProblemaNecesidad="Mod";
		currentProblemaNecesidad = (ProblemaNecesidad)tablaProblemasNecesidades.getRowData();
		HtmlAjaxCommandButton boton = (HtmlAjaxCommandButton) evento.getComponent();
                boton.setOncomplete("Richfaces.showModalPanel('panelProblemasNecesidades', {top:'750px', left:'300px', height:'40px'})");
       }
         
       public void nuevoProblemaNecesidad(ActionEvent evento){
            this.accionProblemaNecesidad="Ins";
		currentProblemaNecesidad = new ProblemaNecesidad();
                HtmlAjaxCommandButton boton = (HtmlAjaxCommandButton) evento.getComponent();
                boton.setOncomplete("Richfaces.showModalPanel('panelProblemasNecesidades', {top:'750px', left:'300px', height:'40px'})");

		
       }
       ///PRODUCTO SERVICIO

       public String grabarProducto(){
            if (this.accionProducto.equals("Ins")){

                this.currentEmprendimiento.addProductoservicio(currentProductoServicio);

          }
            this.renderProductoServicio=false;
           return null;

       }
       public String cerrarProducto(){
           this.renderProductoServicio=false;
           return null;

       }
       public String eliminarProduto(){
           currentProductoServicio = (ProductoServicio)tablaProductoServicio.getRowData();
                this.currentEmprendimiento.removeProductoservicio(currentProductoServicio);
		return null;
       }
       public String editarProducto(){
            this.accionProducto="Mod";
                this.renderProductoServicio=true;
		currentProductoServicio = (ProductoServicio)tablaProductoServicio.getRowData();
		return null;
       }
       public String nuevoProducto(){
            this.accionProducto="Ins";
                this.renderProductoServicio=true;
		currentProductoServicio = new ProductoServicio();
		return null;
       }

    public String getAccion() {
        return accion;
    }

    public Competidor getCurrentCompetidor() {
        return currentCompetidor;
    }

    public Emprendimiento getCurrentEmprendimiento() {
        return currentEmprendimiento;
    }

    public String getFiltroBusqueda() {
        return filtroBusqueda;
    }

    public List<Competidor> getListadoActual() {
        return listadoActual;
    }

    public HtmlDataTable getTablaCompetidor() {
        return tablaCompetidor;
    }

    public void setAccion(String accion) {
        this.accion = accion;
    }

    public void setCurrentCompetidor(Competidor currentCompetidor) {
        this.currentCompetidor = currentCompetidor;
    }

    public void setCurrentEmprendimiento(Emprendimiento currentEmprendimiento) {
        this.currentEmprendimiento = currentEmprendimiento;
    }

    public void setFiltroBusqueda(String filtroBusqueda) {
        this.filtroBusqueda = filtroBusqueda;
    }

    public void setListadoActual(List<Competidor> listadoActual) {
        this.listadoActual = listadoActual;
    }

    public void setTablaCompetidor(HtmlDataTable tablaCompetidor) {
        this.tablaCompetidor = tablaCompetidor;
    }

    public String getAccionCompetidor() {
        return accionCompetidor;
    }

    public Boolean getRenderCompetidor() {
        return renderCompetidor;
    }

    public void setAccionCompetidor(String accionCompetidor) {
        this.accionCompetidor = accionCompetidor;
    }

    public void setRenderCompetidor(Boolean renderCompetidor) {
        this.renderCompetidor = renderCompetidor;
    }

    public Boolean getRenderProductoServicio() {
        return renderProductoServicio;
    }

    public void setRenderProductoServicio(Boolean renderProductoServicio) {
        this.renderProductoServicio = renderProductoServicio;
    }

    public ProductoServicio getCurrentProductoServicio() {
        return currentProductoServicio;
    }

    public void setCurrentProductoServicio(ProductoServicio currentProductoServicio) {
        this.currentProductoServicio = currentProductoServicio;
    }

    public String getAccionProducto() {
        return accionProducto;
    }

    public HtmlDataTable getTablaProductoServicio() {
        return tablaProductoServicio;
    }

    public void setAccionProducto(String accionProducto) {
        this.accionProducto = accionProducto;
    }

    public void setTablaProductoServicio(HtmlDataTable tablaProductoServicio) {
        this.tablaProductoServicio = tablaProductoServicio;
    }

    public HtmlDataTable getTablaFuncionalidades() {
        return tablaFuncionalidades;
    }

    public void setTablaFuncionalidades(HtmlDataTable tablaFuncionalidades) {
        this.tablaFuncionalidades = tablaFuncionalidades;
    }

    public Funcionalidad getCurrentFuncionalidad() {
        return currentFuncionalidad;
    }

    public void setCurrentFuncionalidad(Funcionalidad currentFuncionalidad) {
        this.currentFuncionalidad = currentFuncionalidad;
    }

    public String getAccionFuncionalidad() {
        return accionFuncionalidad;
    }

    public Boolean getRenderFuncionalidad() {
        return renderFuncionalidad;
    }

    public void setAccionFuncionalidad(String accionFuncionalidad) {
        this.accionFuncionalidad = accionFuncionalidad;
    }

    public void setRenderFuncionalidad(Boolean renderFuncionalidad) {
        this.renderFuncionalidad = renderFuncionalidad;
    }

    public String getAccionCaracteristica() {
        return accionCaracteristica;
    }

    public String getAccionProblemaNecesidad() {
        return accionProblemaNecesidad;
    }

   

    public Boolean getRenderCaracteristica() {
        return renderCaracteristica;
    }

    public Boolean getRenderProblemaNecesidad() {
        return renderProblemaNecesidad;
    }

    public HtmlDataTable getTablaCaracteristicas() {
        return tablaCaracteristicas;
    }

    public HtmlDataTable getTablaProblemasNecesidades() {
        return tablaProblemasNecesidades;
    }

    public void setAccionCaracteristica(String accionCaracteristica) {
        this.accionCaracteristica = accionCaracteristica;
    }

    public void setAccionProblemaNecesidad(String accionProblemaNecesidad) {
        this.accionProblemaNecesidad = accionProblemaNecesidad;
    }

  

    public void setRenderCaracteristica(Boolean renderCaracteristica) {
        this.renderCaracteristica = renderCaracteristica;
    }

    public void setRenderProblemaNecesidad(Boolean renderProblemaNecesidad) {
        this.renderProblemaNecesidad = renderProblemaNecesidad;
    }

    public void setTablaCaracteristicas(HtmlDataTable tablaCaracteristicas) {
        this.tablaCaracteristicas = tablaCaracteristicas;
    }

    public void setTablaProblemasNecesidades(HtmlDataTable tablaProblemasNecesidades) {
        this.tablaProblemasNecesidades = tablaProblemasNecesidades;
    }

    public Caracteristica getCurrentCaracteristica() {
        return currentCaracteristica;
    }

    public ProblemaNecesidad getCurrentProblemaNecesidad() {
        return currentProblemaNecesidad;
    }

    public void setCurrentCaracteristica(Caracteristica currentCaracteristica) {
        this.currentCaracteristica = currentCaracteristica;
    }

    public void setCurrentProblemaNecesidad(ProblemaNecesidad currentProblemaNecesidad) {
        this.currentProblemaNecesidad = currentProblemaNecesidad;
    }

    

}
